package cc.linker.steplink.crm.merchanth5.service.acs;

import javax.servlet.http.HttpServletRequest;
import java.util.*;

public interface MerchantSalerService {

    Boolean addExtensionAgent(Map<String, String> params);

    List<Map<String, String>> getExtensionAgentList(String customerId, String orgId);

    Integer getSonCustomerCount(String customerId, String orgId, Integer payMode);

    Integer getSonCustomerCountBack(String customerId, String orgId, Integer type);

    List<Map<String, String>> getCustomerSonListAgent(String customerId, String orgId, Integer payMode);

    List<Map<String, Object>> getCustomerSonList(Map<String, Object> param);

    Map<String, String> getCustomerBaseInfo(String customerId);

    String getPromoterName(String customerId, String orgId);

    Map<String, String> getSalerInfo(String customerId, String orgId);

    Map<String, String> getStoreInfo(String customerId, String orgId, Integer customerType);

    Map<String, String> getOrgInfo(String orgId);

    Integer getAgentCount(String customerId, String orgId);

    Integer getcAgentCount(String customerId, String orgId);

    Integer getMerchantOrderCount(String customerId);

    Integer getMerchantOrderCountToday(String customerId);

    Integer getMerchantOrderCountToSend(String customerId);

    Integer getSumGoodsMoney(String customerId, String orgId);

    Integer getSumGoodsMoneyToday(String customerId, String orgId);

    Integer getProfitWithdrawable(String customerId, String orgId);

    Long getProfitToSettlement(String customerId, String orgId);

    Boolean checkSaler(String orgId);

    void addSalerNum(String orgId);

    Boolean checkPromoter(String orgId);

    void addPromoterNum(String orgId);

    void reducePromoterNum(String orgId);

    Boolean checkAgent(String orgId);

    void addAgentNum(String orgId);

    void reduceAgentNum(String orgId);

    List<Map<String, Object>> getPageList(String orgId, String customerId);

    void getKillThings(Map mallGoods);

    List<Map<String, Object>> getPageAllEnrollList(Map<String, Object> param);

    /**
     * 报名状态
     *
     * @param enrollId
     * @return 0 报名关闭 1 待报名 2 报名结束 3 报名已满 4 报名中
     */
    int getEnrollStatus(String enrollId);

    /**
     * 加盟代理和推广员开通审核
     */
    String customerCheck(String type, String customerId, String orgId, String pid);

    Map<String, Object> getCustomerCheckInfo(Map<String, String> param);

    List<Map<String, Object>> getSalerPromoterSonBillList(String pcustomerId, String customerId);

    Long getUserTotalVolume(String pCustomerId, int type, String orgId, String startTime, String endTime);

    Integer getOrderCount(String customerId, String orgId);

    Long getSettleFee(String customerId);

    List<Map<String, Object>> getAllPromoterList();

    Integer getTodaySonCount(Map<String, Object> param);

    Integer getTodayAllRebate(Map<String, Object> param);

    Integer getTodayServiceFee(Map<String, Object> param);

    Integer getTodayRecommendFee(Map<String, Object> param);

    void saveAchievementSettlement(Map<String, Object> param);

    Long getSonSettleFee(Map<String, Object> data);

    Long getSonTotalVolume(Map<String, Object> data);

    Map<String, Object> getPromoterDetail(Map<String, Object> param);

    List<Map<String, Object>> getAchieveList(Map<String, Object> param);

    Integer getSonOrderCount(Map<String, Object> param);

    void addbalance(String ymd);

    Long getCustomerFreeze(Map<String, Object> params);

    List<Map<String, Object>> getOrderListFreeze(Map<String, Object> params);

    List<Map<String, Object>> getCustomPosterList(Map<String, Object> params);

    Long getCrossUserTotalVolume(String customerId, String startTime, String endTime);

    Long getAuthorFee(String customerId, String orgId, String strStart, String strEnd);

    Map<String, Object> getFooterList(String customerId);

    Map<String, Object> getPageInfo(Integer pageId, Integer isAll, Boolean noCache, HttpServletRequest request, boolean isH5, Integer isAllIntegral);

    //新增默认营销活动
    List<Map<String, Object>> defaultMarking(String orgId);

    //获取优惠券
    List<Map<String, Object>> getCouponListByCouponIds(List<String> couponIds, HttpServletRequest request, Boolean isH5, String customerId);

    Integer getHomePageIdByCustomerId(String customerId);

    Object getPageAllFormlist(Map<String, Object> param, HttpServletRequest request);

    Map<String, Object> windowInfo(String orgId);

    List<Map<String, Object>> getMarkings(String orgId);

    Map getUserCenter(String orgId);
}
